package com.gsafety.wellsfort.dao.course;

import com.gsafety.wellsfort.domain.dto.course.CourseQueryDTO;
import com.gsafety.wellsfort.domain.dto.course.MyCourseDTO;
import com.gsafety.wellsfort.domain.model.course.Course;
import com.gsafety.wellsfort.domain.vo.IndexQueryVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface CourseDAO {
    int deleteByPrimaryKey(Integer id);

    int insert(Course record);

    int insertSelective(Course record);

    Course selectByPrimaryKey(Integer id);

    List<Course> selectByParam(CourseQueryDTO dtoParams);

    List<Course> myCourseList(MyCourseDTO dtoParams);

    List<Course> recommendCourseList(Map<String, Object> mapParams);


    int updateByPrimaryKeySelective(Course record);

    int updateByPrimaryKey(Course record);

    List<Course> selectCourseByParam(IndexQueryVO indexQueryVO);

    Integer count();

    int countByRange(@Param("createdStart") Date startTime, @Param("createdEnd") Date endTime);
}